package com.boot.common;


import com.itextpdf.text.*;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;


import java.awt.Font;
import java.io.FileOutputStream;

public class CreatePDFMainTest3 {

    public static void main(String[] args) throws Exception {
        Document document = new Document(PageSize.A4);
        //第二步，创建Writer实例
        PdfWriter.getInstance(document, new FileOutputStream("hello.pdf"));
        //创建中文字体
        BaseFont bfchinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        Font fontChinese = new Font("宋体", 12, 20);
        //第三步，打开文档
        document.open();
        Paragraph title = ItextPdf.createParagraph("测试pdf", ItextPdf.getColorFont(BaseColor.BLACK, 20, "宋体"));
        title.setAlignment(Element.ALIGN_CENTER);

        // 4. 添加段落内容
        document.add(title);

        Paragraph title1 = ItextPdf.createParagraph("", ItextPdf.getColorFont(BaseColor.BLACK, 20, "宋体"));
        title.setAlignment(Element.ALIGN_CENTER);

        // 4. 添加段落内容
        document.add(title1);

        //第四步，写入内容
//创建一列的格子
        PdfPTable goodTable = new PdfPTable(8);

        goodTable.setWidthPercentage(100);
        PdfPCell cell;

        cell = new PdfPCell(new Phrase("格子内容", ItextPdf.getColorFont()));
//格子横跨6个格子
        cell.setColspan(8);
//格子高度35px
        cell.setMinimumHeight(35);
//格子纵跨1个格子
        cell.setRowspan(1);
//格子内容左右居中
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//格子内容上下居中
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        goodTable.addCell(cell);

        Image img = Image.getInstance("C:\\Users\\Administrator\\Desktop\\sd.jpeg");
        // 设置图片大小
        img.scaleToFit(50, 80);

        PdfPCell cell2 = new PdfPCell(img, false);
//格子横跨3个格子
        cell2.setColspan(4);
//格子高度35px
        cell2.setMinimumHeight(35);
//格子纵跨2个格子
        cell2.setRowspan(2);
//格子内容左右居中
        cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
//格子内容上下居中
        cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);


        goodTable.addCell(cell2);

        PdfPCell cell3 = new PdfPCell(new Phrase("测试右上", ItextPdf.getColorFont()));
//格子横跨3个格子
        cell3.setColspan(4);
//格子高度35px
        cell3.setMinimumHeight(35);
//格子纵跨1个格子
        cell3.setRowspan(1);
//格子内容左右居中
        cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
//格子内容上下居中
        cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);
        goodTable.addCell(cell3);

        PdfPCell cell4 = new PdfPCell(new Phrase("测试右下", ItextPdf.getColorFont()));
//格子横跨3个格子
        cell4.setColspan(4);
//格子高度35px
        cell4.setMinimumHeight(35);
//格子纵跨1个格子
        cell4.setRowspan(1);
//格子内容左右居中
        cell4.setHorizontalAlignment(Element.ALIGN_CENTER);
//格子内容上下居中
        cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);
        goodTable.addCell(cell4);

        PdfPCell cell5 = new PdfPCell(new Phrase("新增", ItextPdf.getColorFont()));
//格子横跨3个格子
        cell5.setColspan(8);
//格子高度35px
        cell5.setMinimumHeight(35);
//格子纵跨1个格子
        cell5.setRowspan(1);
//格子内容左右居中
        cell5.setHorizontalAlignment(Element.ALIGN_CENTER);
//格子内容上下居中
        cell5.setVerticalAlignment(Element.ALIGN_MIDDLE);
        goodTable.addCell(cell5);

        for (int i = 0; i < 20; i++) {
            addcell(goodTable, "xingzeng" + i);
        }

        document.add(goodTable);


        //第五步，关闭文档
        document.close();
    }

    public static void addcell(PdfPTable goodTable, String ss) {

        PdfPCell cell5 = new PdfPCell(new Phrase(ss, ItextPdf.getColorFont()));
//格子横跨3个格子
        cell5.setColspan(8);
//格子高度35px
        cell5.setMinimumHeight(35);
//格子纵跨1个格子
        cell5.setRowspan(1);
//格子内容左右居中
        cell5.setHorizontalAlignment(Element.ALIGN_CENTER);
//格子内容上下居中
        cell5.setVerticalAlignment(Element.ALIGN_MIDDLE);
        goodTable.addCell(cell5);


    }

}
